'''
8.2 类与对象的基础应用
    面向对象编程中有两个核心概念:类和对象.其中对象映射了现实生活中真实存在的事物,它可以看得见摸得着,
例如,你现在手里的这本书就是一个对象;类是抽象的,它是一群具有相同特征和行为的事物的统称,例如,"书是人来进步
的阶梯"中提到的数并不具体指哪一本,它就是一个类
    简单地说,类是现实中具有相同特征的一些事物的抽象,对象是类的实例.
'''
'''
8.2.1 类的定义
    现实生活中,一类事物具有相似的特征或行为,人们统称会对这一类事物进行命名以便区别于其他事物.同理,
程序中的类也有一个名称,也包含描述特征的数据成员,以及描述类行为的成员函数,其中数据成员称为属性,
成员函数称为方法.
'''
# Python用class关键字来定义一个类,语法格式如下
# class 类名:
#     属性名 = 属性值
#     def 方法名(self):
#         方法体
'''
    以上格式中的class关键字表示类的开始;类名代表类的标识符,使用大驼峰命名法,首字母一般为大写字母;
冒号是必不可少的;冒号之后跟着属性和方法,属性类似于前面章节中所学的变量,方法类似于前面章节中所学的函数,
但方法列表中的第一个参数是一个指代对象的默认参数self.
'''
# 下面定义一个表示轿车的Car类,该类中包含描述轿车车轮数量的属性wheels和描述轿车行驶行为的方法drive(),实例代码如下:
class Car:
    wheels = 4            # 属性
    def drive(self):      # 方法
        print('行驶')

'''
8.2.2 对象的创建与使用
    设计图可以帮助人们理解车的结构,但驾驶员若想要驾驶汽车,必须要有一辆根据设计图生产的汽车.类和对象的关系
就好比以上实例中的设计图和汽车.同理,程序若想要使用类,则需要根据类创建一个对象.
    创建对象的语法格式如下所示:
对象名 = 类名()
    例如,根据8.2.1定义的Car类创建一个对象,代码如下:
car = Car()
    对象的使用本质上就是对类或对象成员的使用,即访问属性或调用方法.访问属性或调用方法的语法格式如下:
对象名.属性名
对象名.方法名() 
'''
# 例如,使用car对象访问wheels属性,以及调用drive()方法,代码如下:
car = Car()
print(car.wheels)  # 访问属性
car.drive()        # 调用方法
